/**
 * https://ac.nowcoder.com/acm/contest/22353/C
 */

#include<iostream>
using namespace std;
typedef long long ll;
const int M=5e4+10;
int n,m;
ll a[M];
bool check(ll mid){
    int front=0;
    int sum=0;
    for(int i=1;i<=n;++i){
        if(a[i]-a[front]>=mid)
        front=i;
        else
        sum++;
    }
    return sum<=m;
}
int main()
{
    ll L;
    cin>>L>>n>>m;
    for(int i=1;i<=n;++i)
        cin>>a[i];
    ll left=0,right=L;
    ll ans=0;
    while(left<=right){
        ll mid=left+(right-left)/2;
        if(check(mid)){
            ans=mid;
            left=mid+1;
        }
        else
            right=mid-1;
    }
    cout<<ans<<endl;
    return 0;
    
}